package dbobj

import (
	"gorm.io/gorm"
	"time"
)

//HisData 历史数据 归类
type HisData struct {
	//ID        int64     `gorm:"primaryKey" json:"id"`
	StationID string    `gorm:"type:varchar(40);not null;" json:"station_id"`
	ThingID   string    `gorm:"type:varchar(40);not null;" json:"thing_id"`
	ModelID   string    `gorm:"type:varchar(40);not null;" json:"model_id"` //模型id
	Classify  string    `gorm:"type:varchar(12);" json:"classify"`
	Status    int       `gorm:"type:int;default:0" json:"status"` // # 状态 0 未知 1 正常  2 校准  3 开机 4 中断恢复 5 诊断
	Field     string    `gorm:"type:varchar(40);not null;"`
	Value     float64   `json:"value"`
	Unit      string    `gorm:"type:varchar(10);default:''" json:"unit"`
	PickTime  time.Time `gorm:"index;not null;" json:"pick_time"`
	CreatedAt time.Time `json:"-"`
	UpdatedAt time.Time `json:"-"`
}

// ALTER TABLE "public"."his_data" ADD COLUMN "unit" varchar(10) DEFAULT '';

type HisDataModel struct {
	db *gorm.DB
}

func HisDataNew(db *gorm.DB) *HisDataModel {
	return &HisDataModel{db: db}
}

func (m *HisDataModel) Add(data *HisData) error {
	return m.db.Model(&HisData{}).Create(data).Error
}
